package com.atguigu.sort;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

/**
 * @author durant
 * @create 2021-11-15 10:45
 */
public class SelectSort {
    public static void main(String[] args) {
        int[] arr = new int[80000];
        for (int i = 0; i < 80000; i++) {
            arr[i] = (int) (Math.random() * 80000);
        }
//        int[] arr = new int[4];
//        arr[0] = 101;
//        arr[1] = 32;
//        arr[2] = 119;
//        arr[3] = 1;
        Date date1 = new Date(System.currentTimeMillis());
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm:ss");
        String format = simpleDateFormat.format(date1);
        selectSort(arr);
        Date date2 = new Date(System.currentTimeMillis());
        String forma2 = simpleDateFormat.format(date2);
        System.out.println("排序前的时间：" + format);
        System.out.println("排序后的时间：" + forma2);
    }

    // 选择排序
    public static void selectSort(int[] arr) {
        // 使用逐步推导的方式
        // 第一轮
        // 原始数组： 101 32 119 1
        //  第一轮排序 1  32 119 101

        for (int j = 0; j < arr.length - 1; j++) {
            int min = arr[j];

            int minIndex = j;
            for (int i = 0 + 1 + j; i < arr.length; i++) {
                if (min < arr[i]) {// 把最小值重置一下
                    min = arr[i];
                    minIndex = i;
                }
            }
            // 交换

            arr[minIndex] = arr[j];// 把0的值交给最小值所在位置
            arr[j] = min;// 0位置变成最小值

        }
        System.out.println("第一轮后：");
        System.out.println(Arrays.toString(arr));
    }
}
